|
Since the end of the 20th century, supercomputer operating systems have undergone major transformations, as fundamental changes have taken place in supercomputer architecture.〔 While early operating systems were custom tailored to each supercomputer to gain speed, the trend has been to move away from in-house operating systems to the adaptation of generic software such as Linux.〔 Given that modern massively parallel supercomputers typically separate computations from other services by using multiple types of nodes, they usually run different operating systems on different nodes, e.g. using a small and efficient lightweight kernel such as CNK or CNL on compute nodes, but a larger system such as a Linux-derivative on server and I/O nodes.〔〔''An Evaluation of the Oak Ridge National Laboratory Cray XT3'' by Sadaf R. Alam, et al., International Journal of High Performance Computing Applications, February 2008 vol. 22 no. 1 52-80〕 While in a traditional multi-user computer system job scheduling is in effect a tasking problem for processing and peripheral resources, in a massively parallel system, the job management system needs to manage the allocation of both computational and communication resources, as well as gracefully dealing with inevitable hardware failures when tens of thousands of processors are present.〔Open Job Management Architecture for the Blue Gene/L Supercomputer by Yariv Aridor et al in ''Job scheduling strategies for parallel processing'' by Dror G. Feitelson 2005 ISBN ISBN 978-3-540-31024-2 pages 95-101〕 Although most modern supercomputers use the Linux operating system, each manufacturer has made its own specific changes to the Linux-derivative they use, and no industry standard exists, partly due to the fact that the differences in hardware architectures require changes to optimize the operating system to each hardware design.〔 ==Context and overview== In the early days of supercomputing, the basic architectural concepts were evolving rapidly, and system software had to follow hardware innovations that usually took rapid turns.〔 In the early systems, operating systems were custom tailored to each supercomputer to gain speed, yet in the rush to develop them, serious software quality challenges surfaced and in many cases the cost and complexity of system software development became as much an issue as that of hardware.〔 In the 1980s the cost for software development at Cray came to equal what they spent on hardware and that trend was partly responsible for a move away from the in-house operating systems to the adaptation of generic software.〔''Knowing machines: essays on technical change'' by Donald MacKenzie 1998 ISBN 0-262-63188-1 page 149-151〕 The first wave in operating system changes came in the mid 1980s as vendor specific operating systems were abandoned in favor of UNIX, and despite early skepticism this transition proved successful.〔〔 By the early 1990s major changes were taking place in supercomputing system software.〔''Encyclopedia of Parallel Computing by David Padua 2011 ISBN 0-387-09765-1 pages 426-429〕 By this time, the use of Unix in itself had started to change the way system software was viewed. The use of a high level language (C) to implement the operating system, and the reliance on standardized interfaces was in contrast to the assembly language oriented approaches of the past.〔 As hardware vendors adapted UNIX to their systems, new and useful features were added to Unix, e.g. fast file systems and tunable process schedulers.〔 However, all the companies that adapted Unix made their own specific changes to it, rather than collaborating on an industry standard to create "Unix for supercomputers". This was partly due to the fact that the differences in their architectures required these changes to optimize UNIX to that architecture.〔 Thus as general purpose operating systems became stable, supercomputers began to borrow and adapt the critical system code from them and relied on the rich set of secondary functionality that came with them, not having to reinvent the wheel.〔 However, at the same time the size of the code for general purpose operating systems was growing rapidly, and by the time UNIX-based code had reached 500,000 lines of code its maintenance and use was a challenge.〔 This resulted in the move to use microkernels which used a minimal set of the operating system functions. Systems such as MACH at Carnegie Mellon University and Chorus at INRIA were examples of early microkernels.〔 The separation of the operating system into separate components became necessary as supercomputers developed different types of nodes, e.g. compute nodes vs I/O nodes. Thus modern supercomputers usually run different operating systems on different nodes, e.g. using a small and efficient lightweight kernel such as CNK or CNL on compute nodes, but a larger system such as a Linux-derivative on server and I/O nodes.〔〔 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Supercomputer operating systems」の詳細全文を読む スポンサード リンク
|